home *** CD-ROM | disk | FTP | other *** search
- ANI (Windows95 Animated Cursor File Format)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- This is a paraphrase of the format. It is essetially just a RIFF file =
- with extensions... (view this monospaced)
- This info basically comes from the MMDK (Multimedia DevKit). I don't =
- have it in front of me, so I'm going backwards from a VB program I wrote =
- to decode .ANI files.
-
- "RIFF" {Length of File}
- "ACON"
- "LIST" {Length of List}
- "INAM" {Length of Title} {Data}
- "IART" {Length of Author} {Data}
- "fram"
- "icon" {Length of Icon} {Data} ; 1st in list
- ...
- "icon" {Length of Icon} {Data} ; Last in list (1 to cFrames)
- "anih" {Length of ANI header (36 bytes)} {Data} ; (see ANI Header TypeDef )
- "rate" {Length of rate block} {Data} ; ea. rate is a long (length is 1 to cSteps)
- "seq " {Length of sequence block} {Data} ; ea. seq is a long (length is 1 to cSteps)
-
- -END-
-
- - Any of the blocks ("ACON", "anih", "rate", or "seq ") can appear in any
- order. I've never seen "rate" or "seq " appear before "anih", though. You
- need the cSteps value from "anih" to read "rate" and "seq ". The order I
- usually see the frames is: "RIFF", "ACON", "LIST", "INAM", "IART", "anih",
- "rate", "seq ", "LIST", "ICON". You can see the "LIST" tag is repeated and
- the "ICON" tag is repeated once for every embedded icon. The data pulled
- from the "ICON" tag is always in the standard 766-byte .ico file format.
-
- - All {Length of...} are 4byte DWORDs.
-
- - ANI Header TypeDef:
-
- struct tagANIHeader {
- DWORD cbSizeOf; // Num bytes in AniHeader (36 bytes)
- DWORD cFrames; // Number of unique Icons in this cursor
- DWORD cSteps; // Number of Blits before the animation cycles
- DWORD cx, cy; // reserved, must be zero.
- DWORD cBitCount, cPlanes; // reserved, must be zero.
- DWORD JifRate; // Default Jiffies (1/60th of a second) if rate chunk not present.
- DWORD flags; // Animation Flag (see AF_ constants)
- } ANIHeader;
-
- #define AF_ICON =3D 0x0001L // Windows format icon/cursor animation
-
-
- R. James Houghtaling